package org.jeecg.modules.business.service;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.business.entity.BusLivingLayoutDayPrice;
import org.jeecg.modules.business.entity.BusOrderFee;
import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
import org.jeecg.modules.business.vo.RoomOrderFeeVo;
import org.jeecg.modules.rooms.entity.CesHouseLongRentCharge;
import org.jeecg.modules.rooms.entity.CesHouseLongRentScheme;
import org.jeecg.modules.rooms.entity.CesRooms;

import java.util.List;

/**
 * @Description: bus_order_fee
 * @Author: jeecg-boot
 * @Date:   2023-04-08
 * @Version: V1.0
 */
public interface IBusOrderFeeService extends IService<BusOrderFee> {

    Boolean strikeBalance(List<BusOrderFee> busOrderFeeList);

    Boolean refundBatch(List<BusOrderFee> busOrderFeeList, String hotelId);

    Boolean collectionBatch(List<BusOrderFee> busOrderFeeList, String hotelId);

    IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus,String bookingOrderId, DateTime startTime, DateTime endTime);


    void addBillFee(BusRoomsLivingOrder livingOrder, CesRooms room, CesHouseLongRentScheme longRentScheme,List<BusLivingLayoutDayPrice> livingRoomDayPrices);

    Boolean addMeterFee(List<CesHouseLongRentCharge> longRentChargeList);
}
